package com.browsesoft.dbtools;

import java.util.Hashtable;

import org.w3c.dom.Element;

/**
 * 需要转变的字段
 */
public class ChangeField {

	/**
	 * 字段所在的表名
	 */
	private String tableName = null;

	/**
	 * 原来的名字
	 */
	private String original = null;

	/**
	 * 转化后的名字
	 */
	private String target = null;

	/**
	 * 转变方式
	 */
	private String mode = null;

	/**
	 * 构造方法
	 */
	public ChangeField(Element e) {
		tableName = e.getTagName();
		// 取得原名
		original = e.getAttribute("original");
		// 取得目标名
		target = e.getAttribute("target");
		// 取得转换方式
		mode = e.getAttribute("mode");
		// 如果名字中有“，”号说明是要转化成多个字段
		/**
		 * if(target.indexOf(",")!=-1) { //转化为名字链表 this.targetes =
		 * Tools.stringToLinkedList(target); //转换为转变格式链表 LinkedList list =
		 * Tools.stringToLinkedList(mode); this.createFieldFormat(list); }
		 */
	}

	/**
	 * 字段名转换 根据转换方式的不同，可以分为 单纯的字段名更改和把一个字段分解成多个字段
	 */
	public Hashtable getResultOfChange(String value) {
		Hashtable ht = new Hashtable();
		// 如果指定的转化模式字符串中没有“，”,说明只是单纯的字段名更改
		if (mode.equals("all")) {
			ht.put(target, value);
		}
		// 其它情况暂时没有实现
		else {
		}
		return ht;
	}

	/**
	 * 是否是需要转换的字段
	 */
	public boolean isChange(String table, String field) {
		// 当表名和字段名字都相同时，返回真
		if (tableName.equals(table) && original.equals(field)) {
			return true;
		} else {
			return false;
		}
	}
}